package fr.grassaud.hmvc.session;

public interface HMVCSessionManager extends HMVCSession {

    /**
     * Fires to the <code>TriadListener</code> of this session that a triad is
     * created but not instanciated yet
     * 
     * @param triad
     *            the tiad created
     */
    void fireTriadCreated(Triad triad);

    /**
     * Fires to the <code>TriadListener</code> of this session that a triad is
     * instantiated
     * 
     * @param triad
     *            the triad instantiated
     */
    void fireTriadInstantiated(Triad triad);

    /**
     * Returns the <code>Triad</code> root of this session
     * 
     * @return the <code>Triad</code> root of this session
     */
     Triad getRoot();
    
    
    /**
     * Sets the root controller class of this session
     * @param rootController the class of the controller, should be annotated as a <code>Controller</code> component
     */
      void setRoot(Class<?> rootController);
    
   
}
